<!doctype html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../assert_selection.js"></script>
<script>
// Test for http://bugs.webkit.org/show_bug.cgi?id=14347
// REGRESSION (r21291): Initiating a drag near the edge of a selection deselects
// it.
selection_test(
    [
        '<div id="src">^W|</div>',
        '<div contenteditable id="dst"></div>',
    ],
    selection => {
        if (!window.eventSender)
          throw 'This test requires eventSender.';

        // Drag the selected letter W into the yellow rectangle.
        const source = selection.document.getElementById('src');
        const destination = selection.document.getElementById('dst');

        const x = selection.computeLeft(source) + 1;
        const srcY = selection.computeTop(source) + source.offsetHeight / 2;
        const dstY = selection.computeTop(destination) + source.offsetHeight / 2;

        eventSender.mouseMoveTo(x, srcY);
        eventSender.mouseDown();
        eventSender.leapForward(1000);
        eventSender.mouseMoveTo(x, dstY);
        eventSender.mouseUp();
    },
    [
        '<div id="src">W</div>',
        '<div contenteditable id="dst">^W|</div>',
    ]);
</script>
